Міністерство освіти і науки України
Національний університет “Львівська політехніка”
/
Звіт до лабораторної роботи №1
на тему:
«Дискретизація і квантування сигналів»
з дисципліни:
“Цифрова обробка сигналів”
Мета роботи: Вивчити та дослідити процес дискретизації і квантування сигналів, оцінити похибку оцифровування.
ПОРЯДОК ВИКОНАННЯ РОБОТИ
Знайти в аналітичному виді крок дискретизації заданого варіантом сигналу за формулою (1) та період цього сигналу.
За допомогою системи SCILAB задати вхідний сигнал, утворивши дискретну послідовність та вивести його графік на одному періоді. При цьому частоту дискретизації збільшити в 2 рази, тобто koef =21 .
Оцифрувати отриману дискретну послідовність, для 16 рівнів квантування (тобто М=24), попередньо знайшовши максимальну амплітуду сигналу. Вивести графік цифрового сигналу.
Змінюючи коефіцієнт дискретизації та кількість рівнів квантування, дослідити похибку оцифровування за формулами (3), (4), (5).
Зробити висновок про крок дискретизації та кількість рівнів квантування, які доцільно застосовувати для заданого варіантом сигналу.
Хід роботи
1. Завдання
при чому, згідно варіанту:
Варіант
№
Параметри сигналу
А1
А2
А3
А4
/
20
30
-26
0,17
27
4
1
8
1/7
0
Тобто, аналітичний запис сигналу такий:
.
2.Аналітичний розрахунок кроку дискретизації та періоду сигналу
Згідно теореми Котельникова: , де: - гранична частота. Оскільки, заданий сигнал містить різні частоти, то граничною буде найбільша з них: . Отже: .
Підставивши отримане значення у теорему Котельникова, маємо крок дискретизації:
Для знаходження періоду заданого сигналу слід знайти найменше спільне кратне між періодами всіх окремих складових сигналу. Таких частин є чотири (чотири доданки присутні в аналітичному представленні сигналу):
; ;
;
Як відомо, амплітуда та фаза не впливають на період сигналу, тому до уваги слід брати лише частоту. Отже, складові заданого сигналу мають такі періоди: ; ; ; . Очевидно, що найменше спільне кратне становить (воно ділиться без остачі на решту періодів). Таким чином період заданого складеного сигналу становить:
3. Текст програми
clear all
//очистка пам’яті
clc
//закриття всіх графічних вікон
close()
//очистка екрану
A1=30; A2=-26; A3=0.17; A4=27;
//амплітуда
w1=4; w2=1; w3=8; w4=1/7;
//частота
phi1=0; phi2=%pi/4; phi3=%pi/7; phi4=%pi/2;
//фаза
M=2^5;
//кількість рівнів квантування
koef=2^0;
//коефіцієнт кількості відліків
w_gr=max([w1,w2,w4,w3]);
//гранична кругова частота
f_gr=w_gr/(2*%pi);
//гранична лінійна частота
dt=1/(2*f_gr*koef);
//дискрет часу за теоремою //Котельникова
T=14*%/pi;
//період з аналітичних розрахунків
t=0:dt:T-dt;
//вектор часу для одного періоду
x=A1*cos(w1*t+phi1)-A2*sin(w2*t+phi2)+A3*sin(w3*t+phi3)-A4*cos(w4*t+phi4);
//вектор дискретного сигналу
maxA=max(abs(x))
//максимальне значення амплітуди
minA=-maxA
//мінімальне значення амплітуди
N=length(x);
//довжина вектору сигналу
k=(maxA-minA)/(M-1);
//квант амплітуди
K=minA:k:maxA;
//вектор рівнів квантування
y=floor(x/k)*k;
if modulo(M,2)==0
y=y+k/2;
end;
//округлення дискретного значення //сигналу до найближчого рівня //квантування, а отже, отримання //квантованого, тобто цифрового //сигналу
KK=ones(N,1)*K; plot(t,KK,'k--')
ff=gca()
ff.auto_ticks=["on","on","on"]
xlabel('Час,с'); ylabel('Рівні квантування')
//відображення рівнів квантування
plot2d(t,x,3)
//графік дискретного сигналу
plot2d2(t,y,5)
//графік квантованого сигналу
a=max(abs(y-x))
disp(a,"a=")
//абсолютна похибка
b=(1/N)*(sum(y)-sum(x))
disp(b,"b=")
//середня похибка
d=(1/N)*sum((y-x).^2)
disp(d,"d=")
//дисперсія
4. Оцінка похибки оцифровування
Koef
M
A
B
D
1
8
11.6042
0.20768
42.9736
32
2.62555
0.09379
2.34883
256
0.31780
-0.02280
0.03483
2
8
11.6042
1.142D-14
46.1722
32
2.62555
0.04689
...